using Godot;
using System;
using 游戏设定.基类;
using 游戏设定.枚举;

public partial class 组件弹窗 : Panel
{
    [Export] private Label 名称标签;
    [Export] private Button 穿戴按钮;
    [Export] private Button 取下按钮;

    private C装备模型 装备 = null;

    public override void _Ready()
    {
        穿戴按钮.Pressed += 穿戴按钮被按下;
        取下按钮.Pressed += 取下按钮被按下;
    }
    public void 置数据(C道具模型 _装备)
    {
        装备 = (C装备模型)_装备;

        名称标签.Text = 装备.名称;

        if (装备.道具位置 == E道具位置.背包)
        {
            取下按钮.Visible = false;
        }
        else
        {
            穿戴按钮.Visible = false;
        }
        // 名称标签.Text =  装备.装备属性.暴击率
    }

    private void 穿戴按钮被按下()
    {
        // 取对应装备栏装备
        C装备模型 装备栏 = 游戏管理.装备栏实例.取装备(装备.部位);

        // 装备栏没有对应的装备
        if (装备栏 == null)
        {
            游戏管理.背包实例.删道具(装备.唯一码);
        }
        // 装备栏当前有装备
        else
        {
            装备栏.道具位置 = E道具位置.背包;
            游戏管理.背包实例.更换道具(装备.唯一码, 装备栏);
        }

        装备.道具位置 = E道具位置.装备栏;
        游戏管理.装备栏实例.置装备(装备);
        销毁();
    }

    private void 取下按钮被按下()
    {
        // 销毁装备栏对应的装备模型
        游戏管理.装备栏实例.删装备(装备.部位);
        // 将取下的装备 添加到背包里
        装备.道具位置 = E道具位置.背包;
        游戏管理.背包实例.置道具(装备);
        销毁();
    }

    private void 销毁()
    {
        GetParent().QueueFree();
    }
}
